.\" -*- mode: nroff -*-
.ds V 1.2.0
.ds E " \-\- 
.if t .ds E \(em
.de Sp
.if n .sp
.if t .sp 0.4
..
.de Es
.Sp
.RS 5
.nf
..
.de Ee
.fi
.RE
.PP
..
.de Rs
.RS
.Sp
..
.de Re
.Sp
.RE
..
.de M
.BR "\\$1" "(\\$2)\\$3"
..
.de RM
.RB "\\$1" "\\$2" "(\\$3)\\$4"
..
.TH CLICK-MKMINDRIVER 1 "28/Apr/2001" "Version \*V"
.SH NAME
click-mkmindriver \- generates a build environment for a minimal Click driver
'
.SH SYNOPSIS
.B click-mkmindriver
.RI "-p " packagename
.RI \%[ options "] \e"
.RI \%[ param = value " ...]"
.br
.RI "\%        [" router\-files... ]
'
.SH DESCRIPTION
The
.B click-mkmindriver
tool generates a build environment for a minimal Click driver\*Ethat is, a
driver containing only the elements necessary to run the configurations in
the
.IR router\-files .
You must supply a name for the driver,
.IR packagename .
Running
.RI "`make MINDRIVER=" packagename "'"
will create either a user-level driver named
.RI "`" packagename "click',"
or a Linux kernel module named
.RI "`" packagename "click.o'."
Run
.B click-mkmindriver
from the respective Click build directory, or supply a relevant
.B \-\-directory
option.
.PP
Sometimes one element depends weakly on another, especially for parsing.
For instance, the
.M IPEncap n
element can take advantage of protocol names supplied by the
.M IPNameInfo n
class; if IPNameInfo is not available, IPEncap will still work, it just
won't be able to parse protocol names.
.B Click-mkmindriver
does not include weakly dependent elements automatically, so you must
supply them explicitly with
.B \-E
options if you want them.  Common examples include IPNameInfo and
IPFieldInfo.  If a configuration fails to parse, try including these
elements.
'
.SH "OPTIONS"
'
If any filename argument is a single dash "-",
.B click-mkmindriver
will use the standard input or output instead, as appropriate.
'
.TP 5
.BI \-p " packagename"
.PD 0
.TP
.BI \-\-package " packagename"
Specifies the package name.
'
.Sp
.TP
.BI \-f " file"
.TP
.BI \-\-file " file"
Read a router configuration from
.IR file .
'
.Sp
.TP
.BI \-e " expr"
.TP
.BI \-\-expression " expr"
Use
.IR expr ,
a string in the Click language, as a router configuration.
'
.Sp
.TP
.BR \-a ", " \-\-all
Include every primitive element class, even those in compound elements that
are not themselves used, in the following router configurations. This is
useful to add support for
.M click-xform 1 ,
for example.
'
.Sp
.TP
.BR \-l ", " \-\-linuxmodule
Output a build environment for a Linux kernel module driver.
'
.Sp
.TP
.BR \-u ", " \-\-userlevel
Output a build environment for a user-level driver. This is the default.
'
.Sp
.TP
.BI \-d " dir"
.TP
.BI \-\-directory " dir"
Write output file `elements_\fIpackagename\fR.conf' to the directory
.IR dir .
This directory must already contain a normal build environment for the
Click Linux module or user-level driver. (The driver required depends on
the 
.B \-k
and
.B \-u
options.) The default directory is `.'.
'
'
.Sp
.TP
.BI \-E " elts"
.TP
.BI \-\-elements " elts"
Include the element classes
.IR elts ,
a space-separated list of element class names.
.B Click-mkmindriver
will also read a router configuration, but see
.B \-\-no\-file
below.
'
.Sp
.TP
.BR \-\-no\-extras
Do not add optional, but useful, element classes by default.  Currently,
these classes are
.M Align n
and
.M IPNameInfo n ". "
If a configuration or option explicitly requires one of these classes, it
will of course be included.
'
.Sp
.TP
.BR \-V ", " \-\-verbose
Print verbose progress information to standard error.
'
.Sp
.TP 5
.BI \-\-help
Print usage information and exit.
'
.Sp
.TP
.BI \-\-version
Print the version number and some quickie warranty information and exit.
'
.PD
'
.SH "SEE ALSO"
.M click 1 ,
.M click.o 8
'
.SH AUTHOR
.na
Eddie Kohler, kohler@cs.ucla.edu
.br
http://www.read.cs.ucla.edu/click/
'
